“Server,” in the computing/information technology industry, is a term used quite broadly, but typically refers to a physical computer as well as running instances of software, the software and hardware being capable of accepting requests from and serving “clients.” More specifically, the server computer utilizes a “client-server” architecture and the server programs serve the requests of other programs, referred to as the clients. The clients may run on the same computer, but typically connect to the server through a network. One example of such a network is shown in FIG. 1. There, a client machine 102 is connected to a server machine 104 through a network 106, e.g., the Internet.
The general purpose of the server architecture is to share data, information or hardware, and software resources. Examples of computing servers are database servers, file servers, mail servers, print servers, web servers, gaming servers, application servers, and others. For example, the client device 102 in FIG. 1 could be a machine running a web browser. The browser on the client device 102 connects to the server machine 104 and requests a particular webpage stored on that server. The server machine 104 then responds by sending back, via the network 106, a representation of that page, which the client machine 102 then displays to the user of that machine.
Hardware requirements for servers vary widely, depending on the server application. Generally, however, server machines are always on and always available to the clients without interruption, making durability, reliability, and fault tolerance important considerations when selecting components and architecture. Hardware redundancy, such as dual power supplies and RAID disk system ECC memory, along with extensive pre-boot memory testing and verification, are frequently utilized to ensure maximum uptime for the server devices. Central processing units (CPUs) with multiple processors provide these servers the ability to easily run complex tasks.
Server rooms, called data centers, frequently hold large numbers of server computers that are coupled together (“clustered”) to provide redundancy in function and hardware. The server casings are usually flat, wide, and sized to be rack-mounted.
To handle the service requests from clients, network administrators typically dedicate each server to a specific application or processing task. One reason for this is that each task is not necessarily compatible with other tasks, making having a dedicated machine a convenient way to avoid conflicts. In addition, it is easy to track down problems as they arise when a machine performs only one task. Ifs a simple way to streamline a computer network from a technical standpoint.
One main issue with this one task/one machine arrangement is that it doesn't take full advantage of the server computers' processing power. In fact, under this architecture, the server might use only a small fraction of its overall processing capabilities. Another problem is that as a computer network gets larger and more complex, the servers begin to take up a lot of physical space. A data center might become overcrowded with racks of servers consuming a lot of power and generating heat.
One solution meant to address these issues is called “server virtualization.” Virtualization uses specially designed software and allows an administrator to convert one physical server into multiple “virtual” machines. FIG. 2 provides a schematic view of the functionality of the server 104 of FIG. 1 as it provisions a plurality of virtual servers 202a-n, where “n” represents any number between 0 to infinity and “a-n”, therefore, represents any number of items. Each virtual server 202a-n acts like a unique physical device, capable of running its own operating system (OS).
Server virtualization conserves space through consolidation. Instead of dedicating one machine to one task (application), several virtual machines can be consolidated into one physical server running multiple virtual environments. For companies that have hundreds or thousands of servers, the need for physical space can decrease significantly with the use of server virtualization. In addition to saving space, because each processor can now be used for more than one task, hardware can be better utilized.
Server virtualization, however, is not a perfect solution. That is because virtualization essentially divides the server's processing power up among the virtual servers. When the server's processing power can't meet application demands, everything slows down. Tasks that shouldn't take very long to complete might last hours. In other words, the benefits of server virtualization are limited by the physical server's processing power. Worse, it is possible that the system could crash if the server cannot meet processing demands. It is therefore unwise to overload a server's CPU by creating too many virtual servers on one physical machine because, the more virtual machines a physical server must support, the less processing power each individual virtual server can receive. In addition, there is a limited amount of disk space on physical servers. Too many virtual servers could impact the server's ability to store data.
One thing that has been consistent over the last 50 years is a dramatic increase in hardware technology each and every year. Those in the computer industry have happily watched the world follow “Moore's Law,” which predicted a doubling of the number of transistors (an approximate measure of computer processing power) every 18 to 24 months. Although this law might not hold up forever, it is safe to expect tomorrow's hardware will offer recognizably significant performance advancements over those available today. Therefore, issues with server virtualization overwhelming the ability of server hardware can be addressed by simply replacing less-able components with superior ones.
Unfortunately, current server architecture utilizes computer “motherboards” that hold the multiple components necessary to run the server machine. For example, the INTEL XEON E5-2600 series CPU contains up to 8 cores plus HYPERTHREADING for a total of 16 threads per processor. This board is built on 32 nm technology and the overall die size is 416 mm. On this huge 416 mm die is 20 MB of L3 cache adding up to a transistor count of around 2.263 billion transistors.
When components of this board need to be upgraded, currently, the only solution is to remove and dispose of the entire expensive board, which is an unnecessary waste of pricey resources. For example, when a new processor is released, it is currently not possible to simply remove the old processors and insert the new ones into a motherboard on the data center floor. Similarly, it is not currently possible to simply add an additional processor or two to a motherboard in the data center. What data centers are lacking is an infrastructure that makes replacing old equipment and adopting new technology easy, quick, efficient, and inexpensive.
Therefore, a need exists to overcome the problems with the prior art as discussed above.